Determining the orientation of objects in space

ABSTRACT

A method and system determines object orientation using a light source to create a shadow line extending from the light source. A camera captures an image including the shadow line on an object surface. An orientation module determines the surface orientation from the shadow line. In some examples a transparency imperfection in a window through which a camera receives light can be detected and a message sent to a user as to the presence of a light-blocking or light-distorting substance or particle. A system can control illumination while imaging an object in space using a light source mounted to a support structure so a camera captures an image of the illuminated object. Direct illumination of the camera by light from the light source can be prevented such as by blocking the light or using a light-transmissive window adjacent the camera to reject light transmitted directly from the light source.

BACKGROUND

The present invention relates generally to systems and methods forlocating objects in three-dimensional space, and more specifically todetermining the position and orientation of objects.

Images captured by a digital camera may be used to locate an object inthe three-dimensional space viewed by the camera. In existing systems,image-processing algorithms may be applied to the images in an attemptto discern objects therein; for example, an edge-detection algorithm maybe applied to attempt to locate the edges of objects in the image. Thedetected edges may be applied to identify the objects defined by thedetected edges. These types of systems, however, tend to requiresubstantial computational capacity and/or processing time to analyze theimages, rely on being able to identify the object, and may lack of theprecision to accurately determine the orientation of the objects. If theobject is not found in the image, if a detected object is notrecognized, or if the object comprises surfaces that are difficult tocapture, these existing systems are unable to determine objectproperties with any accuracy or are unable to determine the propertiesat all. A need therefore exists for a system and method for quickly andaccurately determining properties of objects in space.

SUMMARY

Aspects of the systems and methods described herein provide fordetermining positional information (e.g., location, and/or orientation)for at least a portion of a target object within a field of view. Amongother aspects, embodiments can enable objects and/or features of anobject surface to be automatically (e.g. programmatically) determinedusing positional information in conjunction with receiving input,commands, communications and/or other user-machine interfacing,gathering information about objects, events and/or actions existing oroccurring within an area being explored, monitored, or controlled,and/or combinations thereof.

In various embodiments, systems and methods are provided for determiningcharacteristics for properties (e.g., positional information such aslocation, orientation, Kercher etc.) of an object in space by causing ashadow line formed by an instruction between the object and a lightsource to fall onto at least a portion of the object. The shadow linefalls across at least a portion of an object, and an image systemcaptures an image of the object portion and the shadow line. Bydetermining properties (e.g., Kercher, the position, ankle, extent,etc.) of the shadow line as captured, the one or more characteristics ofthe object are found.

A method for determining an orientation of an object in space can becarried out as follows. A light source is operated to create a shadowline extending from the light source. An image is captured using acamera, the image including an object intersecting the shadow line. Theimage is analyzed to determine a position of the shadow line on theobject. An orientation of the object is determined based at least inpart on the position of the shadow line. The orientation determiningmethod can include one or more the following. The shadow line can becreated by blocking a portion of light emitted by the light source witha light blocking structure at least partially opaque to the light. Theorientation of the light blocking structure can also be based on aconfiguration and position of the light blocking structure relative tothe light source. Analyzing the image can include analyzing rows of theimage to detect increases or decreases in luminescence therein. Themethod can include one or more the following: moving the shadow line bymoving the light source or the light blocking structure; detecting alight-blocking or light-distorting substance or particle on atransparent window through which the camera receives light; andpreventing direct illumination of the camera by light from the lightsource.

A system for determining an orientation of an object in space includesthe following. A light source emits light. A light blocking structure ispositioned and configured so that a portion of the light emitted fromthe light source is blocked to create a shadow line extending from thelight source. A camera captures an image including the shadow line on asurface of an object. An orientation module determines an orientation ofthe surface based on the shadow line on the surface. The orientationdetermining system can include one or more the following. The lightblocking structure can be a portion of a structure housing the lightsource; the structure housing the light source can include a protrusionacting as the light blocking structure, or a recess in the structurehousing the light source, the recess the having a wall acting as thelight blocking structure.

A light blocking/distorting detection method, for use with a systemusing at least one camera to image an object in space, is carried out asfollows. An object in space is illuminated. An image of at least aportion of the object is captured using a camera. A light-blocking orlight-distorting substance or particle on a transparent window throughwhich the camera receives light is detected. A message is sent to a userto inform the user of the presence of said light-blocking orlight-distorting substance or particle. The light blocking/distortingdetection method can include one or more the following. Detecting thesubstance or particle can include comparing the image with a secondimage taken with a second said camera. The object illuminating step caninclude operating a light source which projects light towards theobject, and detecting the substance or particle can include comparingthe image with a second image taken with the camera while the lightsource is not projecting light.

A first method for detecting a transparency imperfection in a windowthrough which a camera receives light, is carried out as follows. Afirst image is captured with the camera. A second image is captured witha second camera. The first image is compared to the second image todetect a blurry region in the first image corresponding to transparencyimperfection in a window through which the first camera receives light.In some examples the first transparency imperfection detection methodcan include one or more the following. The transparency imperfection canbe a light-blocking or light-distorting substance or particle. In someexamples a user can be alerted to the presence of the substance orparticle.

A second method for detecting a transparency imperfection in a windowthrough which a camera receives light, is carried out as follows. Afirst image is captured with the camera while a light source near thecamera is emitting light. A second image is captured with the camerawhile the light source is not emitting light. The first image iscompared to the second image to detect an illumination of a transparencyimperfection in the window through which the first camera receiveslight. The transparency imperfection can be a light-blocking orlight-distorting substance or particle. In some examples the methodincludes alerting a user to the presence of the transparencyimperfection.

A method for controlling illumination while imaging an object in space,is carried out as follows. A light source is operated to emit light fromthe light source. An image of an object is captured using a camera, theimage being at least partially illuminated by the light. Directillumination of the camera by light from the light source is prevented.Examples of the illumination controlling method can include one or morethe following. The light capture preventing step can include theshielding the camera with a light-transmissive window adjacent to thecamera, the window configured to reject light transmitted directly fromthe light source to the window. The light capture preventing step caninclude blocking a portion of the light emitted by the light source witha light blocking structure adjacent to the light source, the lightblocking structure being at least partially opaque to the light. Thelight source operating step and the image capturing step can be carriedout with the light source and the camera mounted to a common supportstructure with the common support structure including the light blockingstructure.

A system for controlling illumination while imaging an object in spaceincludes the following. A light source is mounted to a support structureto emit light to illuminate an object. A camera is used to capture animage of the illuminated object. A light blocking structure ispositioned and configured to prevent light transmitted from the lightsource from directly illuminating the camera.

Advantageously, these and other aspects enable machines, computersand/or other types of intelligent devices, and/or other types ofautomata to obtain information about objects, events, actions, and/orusers employing gestures, signals, and/or other motions conveyingmeaning and/or combinations thereof. For example, some embodiments canprovide for detecting of curvatures, or other complexities in theobject. Various embodiments can provide for reducing stray luminancefrom a source being detected by a detector. Some embodiments can providefor efficient automatic determination that dirt or other contaminantsexist on a lens or other optical surface of the device performingimaging. These and other advantages and features of the embodimentsherein described, will become more apparent through reference to thefollowing description, the accompanying drawings, and the claims.Furthermore, it is to be understood that the features of the variousembodiments described herein are not mutually exclusive and can exist invarious combinations and permutations.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, like reference characters generally refer to the sameparts throughout the different views. In the following description,various embodiments of the present invention are described withreference to the following drawings, in which:

FIG. 1 illustrates an exemplary image-capture system in accordance withembodiments of the present invention;

FIG. 2 illustrates an exemplary computer system for image processing,analysis, and display in accordance with embodiments of the presentinvention;

FIGS. 3A and 3B illustrate cross-sectional views of light transmittersand receivers in accordance with embodiments of the present invention;

FIG. 4 illustrates a block diagram of a system for casting a shadow lineon an object in accordance with embodiments of the present invention;

FIGS. 5A, 5B and 5C illustrate exemplary orientations of an object andshadow lines thereon in accordance with embodiments of the presentinvention;

FIG. 6 illustrates a flowchart describing a method for determining anorientation of an object in space in accordance with embodiments of thepresent invention;

FIG. 7 illustrates a light transmitting and receiving device inaccordance with embodiments of the present invention; and

FIGS. 8A, 8B AND 8C illustrate examples in which light emitted from alight source is prevented from being transmitted through a window. FIG.8A shows emitted light reflected from a window due to, for example,total-internal reflection. FIG. 8B shows a protrusion which prevents thelight from striking a window. FIG. 8C shows a protrusion overhanging aportion of the light source.

DETAILED DESCRIPTION

Described herein are various embodiments of methods and systems fordetermining the position and/or orientation of an object in space.Embodiments can provide improved accuracy in positional and/ororientation information capable of supporting object or object surfacerecognition, object change, event or action recognition and/orcombinations thereof. An embodiment provides for determining positionand/or orientation of target object(s) in conjunction with amotion-capture. In one embodiment there can be provided a camera toacquire images of an object; and a computer and/or other logicimplementing hardware to identify and characterize object(s) based atleast in part upon the image. Optionally, a computer display and/orother types of display hardware, software and/or combinations thereof,can be provided to display information related to theidentified/characterized object. A light source may also be included toilluminate the object.

Motion-capture systems generally include (i) a camera for acquiringimages of an object; (ii) a computer for processing the images toidentify and characterize the object; and (iii) a computer display fordisplaying information related to the identified/characterized object. Alight source may also be included to illuminate the object. FIG. 1illustrates an exemplary motion-capture system 100. The system 100includes one or more light-capturing devices 102 (e.g., digital camerasor similar devices), generally referred to as cameras 102, eachincluding an image sensor (e.g., a CCD or CMOS sensor), an associatedimaging optic (e.g., a lens), and a window of transparent materialprotecting the lens from the environment. In embodiments having aplurality of cameras, two or more cameras 102 may be arranged such thattheir fields of view overlap in a viewed region. One or morelight-emitting devices 104 may be used to illuminate an object 106 inthe field of view. The cameras 102 provide digital image data to acomputer 108, which analyzes the image data to determine the 3Dposition, orientation, and/or motion of the object 106 the field of viewof the cameras 102.

The cameras 102 may be, e.g., visible-light cameras, infrared (IR)cameras, ultraviolet cameras, or cameras operating in any otherelectromagnetic frequency regime. Preferably, the cameras 102 arecapable of capturing video images (i.e., successive image frames at aconstant rate of, say, fifteen frames per second, although no particularframe rate is required). The particular capabilities of cameras 102 mayvary as to frame rate, image resolution (e.g., pixels per image), coloror intensity resolution (e.g., number of bits of intensity data perpixel), focal length of lenses, depth of field, etc. In general, for aparticular application, any cameras capable of focusing on objectswithin a spatial volume of interest can be used. For instance, tocapture motion of the hand of an otherwise stationary person, the volumeof interest might be a cube of one meter in length. To capture motion ofa running person, the volume of interest might have dimensions of tensof meters in order to observe several strides.

The cameras may be oriented in any convenient manner. In one embodiment,the optical axes of the cameras 102 are parallel, but this is notrequired. As described below, each camera 102 may be used to define a“vantage point” from which the object 106 is seen; if the location andview direction associated with each vantage point are known, the locusof points in space that project onto a particular position in thecamera's image plane may be determined. In some embodiments, motioncapture is reliable only for objects in an area where the fields of viewof cameras 102; the cameras 102 may be arranged to provide overlappingfields of view throughout the area where motion of interest is expectedto occur. In other embodiments, the system 100 may include one or morelight sources 104, and the cameras 102 measure the reflection of thelight emitted by the light sources on objects 106. The system mayinclude, for example, two cameras 102 and one light source 104; onecamera 102 and two light sources 104; or any other appropriatecombination of light sources 104 and cameras 102.

Computer 108 may generally be any device or combination of devicescapable of processing image data using techniques described herein. FIG.2 is a simplified block diagram of a suitably programmed general-purposecomputer 200 implementing the computer 108 according to an exemplaryembodiment of the present invention. The computer 200 includes aprocessor 202 with one or more central processing units (CPUs), volatileand/or non-volatile main memory 204 (e.g., RAM, ROM, or flash memory),one or more mass storage devices 206 (e.g., hard disks, or removablemedia such as CDs, DVDs, USB flash drives, etc. and associated mediadrivers), a display device 208 (e.g., a liquid crystal display (LCD)monitor), user input devices such as keyboard 210 and mouse 212, and oneor more buses 214 (e.g., a single system bus shared between allcomponents, or separate memory and peripheral buses) that facilitatecommunication between these components.

The cameras 102 and/or light sources 104 may connect to the computer 200via a universal serial bus (USB), FireWire, or other cable, orwirelessly via Bluetooth, Wi-Fi, etc. The computer 200 may include acamera interface 216, implemented in hardware (e.g., as part of a USBport) and/or software (e.g., executed by processor 202), that enablescommunication with the cameras 102 and/or light sources 104. The camerainterface 216 may include one or more data ports and associated imagebuffers for receiving the image frames from the cameras 102; hardwareand/or software signal processors to modify the image data (e.g., toreduce noise or reformat data) prior to providing it as input to amotion-capture or other image-processing program; and/or control signalports for transmit signals to the cameras 102, e.g., to activate ordeactivate the cameras, to control camera settings (frame rate, imagequality, sensitivity, etc.), or the like.

The main memory 204 may be used to store instructions to be executed bythe processor 202, conceptually illustrated as a group of modules. Thesemodules generally include an operating system (e.g., a MicrosoftWINDOWS, Linux, or APPLE OS X operating system) that directs theexecution of low-level, basic system functions (such as memoryallocation, file management, and the operation of mass storage devices),as well as higher-level software applications such as, e.g., amotion-capture (mocap) program 218 for analyzing the camera images totrack the position of an object of interest and/or a motion-responseprogram for computing a series of output images (or another kind ofresponse) based on the tracked motion. Suitable algorithms formotion-capture program are described further below as well as, in moredetail, in U.S. patent application Ser. No. 13/414,485, filed on Mar. 7,2012 and Ser. No. 13/742,953, filed on Jan. 16, 2013, and U.S.Provisional Patent Application No. 61/724,091, filed on Nov. 8, 2012,which are hereby incorporated herein by reference in their entirety. Thevarious modules may be programmed in any suitable programming language,including, without limitation high-level languages such as C, C++, C#,OpenGL, Ada, Basic, Cobra, Fortran, Java, Lisp, Perl, Python, Ruby, orObject Pascal, or low-level assembly languages.

The memory 204 may further store input and/or output data associatedwith execution of the instructions (including, e.g., input and outputimage data 220) as well as additional information used by the varioussoftware applications; for example, in some embodiments, the memory 204stores an object library 222 of canonical models of various objects ofinterest. As described below, an object detected in the camera imagesmay identified by matching its shape to a model in the object library222, and the model may then inform further image analysis, motionprediction, etc.

In various embodiments, the motion captured in a series of camera imagesis used to compute a corresponding series of output images for displayon the computer screen 208. For example, camera images of a moving handmay be translated into a wire-frame or other graphic depiction of thehand by the processor 202. Alternatively, hand gestures may beinterpreted as input used to control a separate visual output; by way ofillustration, a user may be able to use upward or downward swipinggestures to “scroll” a webpage or other document currently displayed, oropen and close her hand to zoom in and out of the page. In any case, theoutput images are generally stored in the form of pixel data in a framebuffer, which may, but need not be, implemented in main memory 204. Avideo display controller reads out the frame buffer to generate a datastream and associated control signals to output the images to thedisplay 208. The video display controller may be provided along with theprocessor 202 and memory 204 on-board the motherboard of the computer200, and may be integrated with the processor 202 or implemented as aco-processor that manipulates a separate video memory. In someembodiments, the computer 200 is equipped with a separate graphics orvideo card that aids with generating the feed of output images for thedisplay 208. The video card generally includes a graphical processingunit (“GPU”) and video memory, and is useful, in particular, for complexand computationally expensive image processing and rendering. Thegraphics card may implement the frame buffer and the functionality ofthe video display controller (and the on-board video display controllermay be disabled). In general, the image-processing and motion-capturefunctionality of the system may be distributed between the GPU and themain processor 202 in various conventional ways that are wellcharacterized in the art.

The computer 200 is an illustrative example; variations andmodifications are possible. Computers may be implemented in a variety ofform factors, including server systems, desktop systems, laptop systems,tablets, smart phones or personal digital assistants, and so on. Aparticular implementation may include other functionality not describedherein, e.g., wired and/or wireless network interfaces, media playingand/or recording capability, etc. In some embodiments, one or morecameras may be built into the computer rather than being supplied asseparate components. Further, the computer processor may be ageneral-purpose microprocessor, but depending on implementation canalternatively be, e.g., a microcontroller, peripheral integrated circuitelement, a customer-specific integrated circuit (“CSIC”), anapplication-specific integrated circuit (“ASIC”), a logic circuit, adigital signal processor (“DSP”), a programmable logic device such as afield-programmable gate array (“FPGA”), a programmable logic device(“PLD”), a programmable logic array (“PLA”), smart chip, or other deviceor arrangement of devices.

Further, while computer 200 is described herein with reference toparticular blocks, this is not intended to limit the invention to aparticular physical arrangement of distinct component parts. Forexample, in some embodiments, the cameras 102 are connected to orintegrated with a special-purpose processing unit that, in turn,communicates with a general-purpose computer, e.g., via direct memoryaccess (“DMA”). The processing unit may include one or more imagebuffers for storing the image data read out from the camera sensors, aGPU or other processor and associated memory implementing at least partof the motion-capture algorithm, and a DMA controller. The processingunit may provide processed images or other data derived from the cameraimages to the computer for further processing. In some embodiments, theprocessing unit sends display control signals generated based on thecaptured motion (e.g., of a user's hand) to the computer, and thecomputer uses these control signals to adjust the on-screen display ofdocuments and images that are otherwise unrelated to the camera images(e.g., text documents or maps) by, for example, shifting or rotating theimages.

In one embodiment, the system 100 casts a shadow on a surface, capturesimages that include the display of the shadow on the surface, andanalyzes the images to determine an orientation and/or position of thesurface. FIG. 3A illustrates a cross-section view 300 of an embodimentof an image-capture and light-source device 302. The device 302 includesat least one light source 304 and at least one camera 306. The lightsource 304 emits light rays 308; an opaque protrusion 310 from thedevice 302 blocks a portion of the light rays 308 from reaching a region312. The position of the protrusion 310 relative to the light source 304thus creates a shadow line 314 that separates the darkened region 312from the region illuminated by the light rays 308. In one embodiment,the protrusion 310 is sized and placed on the device 300 to preventlight emitted from the light source 304 from directly striking thecamera 304. In other embodiments, the protrusion 310 is sized and placedto create the shadow line 314 in addition to, or instead of, protectingthe camera 304.

Another example of a system 350 for casting a shadow line 314 appears incross-section in FIG. 3B. In this embodiment, the light source 304 isdisposed within a recess 352 within the device 302, and the shadow line314 is created by an opaque sidewall 354 of recess 352 of the device302. In general, any opaque structure positioned near the light source304 may be used to create the shadow line 314, and the current inventionis not limited to only the embodiments depicted in FIGS. 3A and 3B.

FIG. 4 is a block diagram 400 of a system 402 that includes a computer,camera, and light source in accordance with the embodiments of theinvention discusses above (such as, for example, the system 100illustrated in FIG. 1). An opaque structure disposed proximate the lightsource causes a shadow line 404 to be cast by the light source. Theshadow line 404 intersects an object 406 having a surface 408. Thecamera captures one or more images of the surface 408 of the object 406,and the computer analyzes the image(s) to extract the position of theshadow line 404 therein. In various embodiments, the computer runs anedge-detection (or similar) algorithm on the image(s) to detect theposition of the shadow line 404 and/or analyzes rows, or groups of rows,of the image(s) to detect increases or decreases in luminescence of thepixels in each row. With reference to FIG. 2, the device interface 216may receive the image data from the camera, and the memory 204 may storein as image data 220. An orientation module 226 analyzes the image data220 to determine the location and position of the shadow line 404; anyobjects intersecting the shadow line may be identified (using, forexample, the object library 222). The orientation module 226 may thendetermine the orientation of the objects.

In one embodiment, a candidate line is found in an image; the computerdetermines if the candidate line is the shadow line 404 by searching forthe candidate line elsewhere in the image. If a surface 408 of an object406 is found, for example, and the candidate line does not bisect theentire surface (or otherwise ends unexpectedly), the candidate line maybe deemed to not be the shadow line 404. The computer may, in addition,analyze additional images taken at different points in time by thecamera to search for the shadow line 404. In some embodiments, theposition of the light source and/or opaque structure casting the shadowline 404 may be altered in accordance with commands from the computer;if no suitable shadow line 404 may be found, the computer may cause itto move to a new position and search again. The position of the shadowline 404 on the object 406 may further be predicted by the position ofthe shadow line 404 on other objects in the field of view of the camera.Shadow line 404 need not be a straight line. In some examples system 402can be constructed to provide improved surface feature capturecapability by casting illumination according to a reference pattern onobject 406. Such structured light patterns could be, for example, in theform of an array of circles with the edges of the circles creatingshadow lines 404.

FIGS. 5A-5C illustrate examples of the relationship of the position ofshadow lines 502A, 502B, 502C and the orientation of an object 504. InFIG. 5A, the object 504 is oriented such that its top edge 506 andbottom edge 508 are equidistant from a light-transmitting device castingthe shadow line 502A (e.g., the device 402 illustrated in FIG. 4). Inthis example, the shadow line 502A coincides with a reference line 510.The position of the shadow line 502A changes, however, as theorientation of the object 504 changes. In FIG. 5B, the top edge 506 ofthe object 504 has moved further away from the light-transmittingdevice; as a result, the shadow line 502B correspondingly moves, nowpositioned such that it lies at an angle 512 with respect to thereference line 510. As the top edge 506 of the object 504 moves furtheraway, as shown in FIG. 5C, the angle 514 that the new shadow line 502Cmakes with the reference line 510 increases further.

Thus, by analyzing the position of the shadow line, the orientation ofthe object 504 may be determined. FIG. 6 illustrates a flowchart 600 fordetermining the orientation of an object in accordance with anembodiment of the present invention. In a first step 602, light isproject from a light source (e.g., the light source 304 depicted in FIG.3A) and a shadow line is created therein by an opaque structure (e.g.,the protrusion 310). In a second step 604, an image is captured by acamera; in one embodiment, the image comprises an object that intersectsthe shadow line (i.e., the shadow line falls on a surface of theobject). In a third step 606, the image is analyzed to determine theposition of the shadow line on the object; in a fourth step 608, anorientation of the object (specifically, a surface of the object) isdetermined based on the position of the shadow line.

In one embodiment, the camera (e.g., the light-capturing device 102illustrated in FIG. 1) includes a charge-coupled device (“CCD”) or othersemiconductor device for receiving and detecting light, a lens forfocusing incoming light on the CCD, and a transparent window forprotecting the lens from the environment. An example of a device 700that includes two such cameras 702A, 702B appears in FIG. 7; each camera702A, 702B includes a CCD 704A, 704B, a lens 706A, 706B, and a window708A, 708B. In one embodiment, the device 700 further includes a lightsource 710. The thickness of the windows 708A, 708B may be selected toreduce or eliminate the amount of light emitted by the light source 710that is transmitted through the windows 708A, 708B after directlystriking the windows 708A, 708B (i.e., light that has not first struck,and been reflected by, an object before striking the windows 708A,708B). In various embodiments, the windows 708A, 708B reflect lighttransmitted directly from the light source 710 due to total-internalreflection (“TIR”). The thickness of the windows 708A, 708B may be, forexample, 1.1 mm or between 0.1 and 0.5 mm; the windows 708A, 708B may bemade from a suitable material, such as glass or a plastic, for exampleacrylic.

In one embodiment, a light-blocking or light-distorting substance orparticle 712 is disposed on a surface of one window 708A. The substanceor particle may be, for example, dust, lint, a fingerprint, oil, or anyother similar material. The substance or particle 712 may interfere withthe operation of the CCD 704A by blocking or distorting a light ray 714that would have otherwise struck the CCD 704A (or would have struck itwithout distortion). In one embodiment, the presence of the substance orparticle 712 is detected and a message is sent to a user (via, forexample, the display 208) to inform the user of its presence.

In one embodiment, images are captured from both cameras 702A, 702B andanalyzed by a window module 224 (with reference to FIG. 2). The windowmodule 224 compares the images taken from both cameras 702A, 702B forinconsistencies therebetween; if, for example, an area of an imagecaptured by the first camera 702A appears blurry and the correspondingarea in an image captured by the second camera 702B is not blurry, thewindow module 224 may alert the user as to the presence of the substanceor particle 712. Other algorithms and techniques for comparing twoimages, such as sum of absolute differences, are within the scope of thepresent invention.

In another embodiment, the window module 224 may receive two sets ofimages from the camera 702A: a first set of one or more images takenwhile the light source 710 is emitting light and a second set of one ormore images take while the light source 710 is not emitting light. Thewindow module 224 may communicate with the camera 702A and light source710 via the device interface 216 to control both devices. In oneembodiment, the substance or particle 712 is illuminated by the lightsource 710 (in addition to illumination from any ambient light alreadypresent in the environment of the window 708A) while the light source710 is emitting light; when the light source 710 is not emitting light,the substance or particle 714 is illuminated only by the ambient light,if any. By comparing the two sets of images, the window module 224detects the substance or particle 714, if present, by searching for anilluminated portion of one of the images in the first set that is notilluminated in the second set.

FIGS. 8A-8C illustrate exemplary embodiments of the invention in whichlight emitted from a light source 802 is prevented from beingtransmitted through a window 804 after directly striking the window 804.In FIG. 8A, the emitted light 806 reflects from the window 804 due to,for example, total-internal reflection. The material comprising thewindow and/or the thickness of the window may be selected such that theangle of the light 806 striking the window 804 falls within angles atwhich the window 804 reflects the light 806. In FIG. 8B, a protrusion808 blocks the light 806 emitted from the light source 802, therebypreventing the light 806 from striking the window 804. In FIG. 8C, theprotrusion 808 includes an overhanging portion 810 that overhangs aportion of the light source 802.

Embodiments may employed in a variety of application areas, such as forexample and without limitation consumer applications includinginterfaces for computer systems, laptops, tablets, television, gameconsoles, set top boxes, telephone devices and/or interfaces to otherdevices; medical applications including controlling devices forperforming robotic surgery, medical imaging systems and applicationssuch as CT, ultrasound, x-ray, MRI or the like, laboratory test anddiagnostics systems and/or nuclear medicine devices and systems;prosthetics applications including interfaces to devices providingassistance to persons under handicap, disability, recovering fromsurgery, and/or other infirmity; defense applications includinginterfaces to aircraft operational controls, navigations systemscontrol, on-board entertainment systems control and/or environmentalsystems control; automotive applications including interfaces toautomobile operational systems control, navigation systems control,on-board entertainment systems control and/or environmental systemscontrol; security applications including, monitoring secure areas forsuspicious activity or unauthorized personnel; manufacturing and/orprocess applications including interfaces to assembly robots, automatedtest apparatus, work conveyance devices such as conveyors, and/or otherfactory floor systems and devices, genetic sequencing machines,semiconductor fabrication related machinery, chemical process machineryand/or the like; and/or combinations thereof.

It should also be noted that embodiments of the present invention may beprovided as one or more computer-readable programs embodied on or in oneor more articles of manufacture. The article of manufacture may be anysuitable hardware apparatus, such as, for example, a floppy disk, a harddisk, a CD ROM, a CD-RW, a CD-R, a DVD ROM, a DVD-RW, a DVD-R, a flashmemory card, a PROM, a RAM, a ROM, or a magnetic tape. In general, thecomputer-readable programs may be implemented in any programminglanguage. Some examples of languages that may be used include C, C++, orJAVA. The software programs may be further translated into machinelanguage or virtual machine instructions and stored in a program file inthat form. The program file may then be stored on or in one or more ofthe articles of manufacture.

There are number of embodiments of motion capture systems havingdifferent numbers of cameras 102 and light sources 104 that can benefitfrom the method and system described above. In one embodiment,orientation and location of objects 106 in 3D space are determined witha single camera 100 by performing two or more image captures in closesuccession in time. The system detects variations in the images and usesvariations to extract positional information. In another embodiment,orientation and location of objects in space are determined with asingle camera having a specialized sensor that captures multiple imageswith portions of the sensor either successively in time or at the sametime. Examples of this second embodiment are disclosed in commonlyowned, co-pending U.S. patent applications Ser. No.14/075,927, filed 8November 2013, entitled Object Detection and Tracking with Reduced ErrorDue to Background Illumination, now US Pat. No. 9,392,196, issued 12Nov. 2016, and Ser. No. 14/075,792, filed 8 Nov. 2013, entitledThree-Dimensional Imaging Sensors, now US Pat. No. 9,386,298, issued 5Jul. 2016, the disclosures of which are incorporated by reference. In afurther embodiment, orientation and location of objects 106 in 3D spaceare determined with more than one (1) camera 102. In this embodiment,cameras 102 capture two or more images at substantially the same time.The system compares features in the two images to determine structure,location, etc. of the object 106 being imaged. This technique iscolloquially known as “stereo-matching”. In a yet further embodiment,orientation and location of objects in space are determined with one ormore cameras and two or more lights. As different lights are flashed,the shadows move around and the system detects variations in the imagesand uses the variations to extract positional information. In a stillyet further embodiment, orientation and location of objects in space aredetermined with one (1) camera and one (1) light source by fitting raysfrom a camera to multiple points on an imaged object, then fits a modelto the tips of the rays.

Certain embodiments of the present invention are described above. It is,however, expressly noted that the present invention is not limited tothose embodiments, but rather the intention is that additions andmodifications to what was expressly described herein are also includedwithin the scope of the invention. Moreover, it is to be understood thatthe features of the various embodiments described herein were notmutually exclusive and can exist in various combinations andpermutations, even if such combinations or permutations were not madeexpress herein, without departing from the spirit and scope of theinvention. In fact, variations, modifications, and other implementationsof what was described herein will occur to those of ordinary skill inthe art without departing from the spirit and the scope of theinvention. As such, the invention is not to be defined only by thepreceding illustrative description.

What is claimed is:
 1. A method for determining an orientation of anobject in space, the method comprising: operating a light sourceincluding an opaque structure portion that is formed to protrude from asurface of a structure housing the light source and protrudingsubstantially in a direction of the object, wherein the opaque structureportion is formed to be disposed within a path of light emanating fromthe light source housed thereby creating a shadow line that is generatedby the opaque structure portion, the shadow line extending from theopaque structure portion such that light from the light source partiallyilluminates the object while simultaneously casting the shadow line ontothe object that is being illuminated; capturing, using a camera, animage comprising an object intersecting the shadow line; analyzing theimage to determine a position of the shadow line on the object; usingthe position of the shadow line, determining an orientation of theobject; detecting a light-blocking or light-distorting substance orparticle on a transparent window through which the camera receiveslight; and wherein the detecting the light-blocking or light-distortingsubstance or particle comprises comparing the image with a second image.2. The method of claim 1, wherein the shadow line is created by blockinga portion of light emitted by the light source with a light blockingstructure at least partially opaque to the light, the orientation of thelight blocking structure being based also on a configuration andposition of the light blocking structure relative to the light source.3. The method of claim 1, wherein the light source is a light-emittingdiode.
 4. The method of claim 1, wherein the structure housing the lightsource comprises a protrusion acting as the light blocking structure. 5.The method of claim 1, wherein the structure housing the light sourcecomprises a recess in a wall acting as the light blocking structure. 6.The method of claim 1, wherein analyzing the image comprises analyzingrows of the image to detect increases or decreases in luminescencetherein.
 7. The method of claim 2, further comprising moving the shadowline by moving the light source or the light blocking structure.
 8. Themethod of claim 1, wherein the comparing the image comprises comparingthe image with a second image taken with a second said camera.
 9. Themethod of claim 1, wherein the comparing the image comprises comparingthe image with a second image taken with the camera while the lightsource is not projecting light.
 10. The method of claim 1, furthercomprising sending a message to a user informing the user of a presenceof said light-blocking or light-distorting substance or particle. 11.The method of claim 1, further comprising preventing direct illuminationof the camera by light from the light source.
 12. The method of claim11, wherein the direct illumination preventing step comprises creating,during the light source operating step, an un-illuminated region to oneside of the shadow line, the camera being located within theun-illuminated region.
 13. The method of claim 11, wherein the directillumination preventing step comprises shielding the camera with awindow configured to reject light transmitted directly from the lightsource to the window.
 14. The method of claim 1, wherein the shadow lineis a straight line.
 15. The method of claim 1, wherein the imageanalyzing step further comprises: determining a first position of ashadow line; determining a second position of the shadow line; comparingthe first position and the second position of the shadow line to detecta difference in shadow line position; and determining that theorientation of the object has changed based at least in part upondetecting the difference between the first position of the shadow lineand the second position of the shadow line.
 16. A lightblocking/distorting detection method, for use with a system using atleast one camera to image an object in space, comprising: illuminatingan object in space by operating a light source including an opaquestructure a portion that is formed to protrude from a surface of astructure housing the light source and protruding substantially in adirection of the object, wherein the opaque structure portion is formedto be disposed within a path of light emanating from the light sourcehoused thereby creating a shadow line extending from the light sourcesuch that light from the light source to partially illuminates theobject while simultaneously casting the shadow line of the opaquestructure onto the object that is being illuminated; capturing, using acamera, an image of at least a portion of the object; detecting alight-blocking or light-distorting substance or particle on atransparent window through which the camera receives light; wherein thedetecting the light-blocking or light-distorting substance or particlecomprises comparing the image with a second image; and sending a messageto a user to inform the user of a presence of said light-blocking orlight-distorting substance or particle.
 17. The method of claim 16,wherein comparing the image comprises comparing the image with a secondimage taken with a second said camera.
 18. The method of claim 16,wherein: illuminating the object comprises operating a light sourcewhich projects light towards the object; and comparing the imagecomprises comparing the image with a second image taken with the camerawhile the light source is not projecting light.
 19. The method of claim16, further including detecting a transparency imperfection in a windowthrough which a camera receives light, comprising: capturing a firstimage with the camera; capturing a second image with a second camera;comparing the first image to the second image to detect a blurry regionin the first image corresponding to transparency imperfection in awindow through which the camera receives light; and alerting a user topresence of the transparency imperfection.
 20. The method of claim 19,wherein the transparency imperfection is a light-blocking orlight-distorting substance or particle.
 21. A method for detecting atransparency imperfection in a window through which a camera receiveslight, the method comprising: capturing a first image with the camerawhile a light source near the camera is emitting light; wherein lightsource includes an opaque structure portion that is formed to protrudefrom a surface of a structure housing the light source, whereinprotrusion is substantially in direction of an object being illuminated,and is disposed within a path of light emanating from the light sourceto create a shadow line extending from the light source to partiallyilluminate an object with the shadow line of the opaque structurecomprising a portion of a structure housing the light source on theobject; capturing a second image with the camera while the light sourceis not emitting light; comparing the first image to the second image todetect an illumination of a transparency imperfection in a windowthrough which the camera receives light; and alerting a user to presenceof the transparency imperfection.
 22. The method of claim 21, whereinthe transparency imperfection is a light-blocking or light-distortingsubstance or particle.
 23. The method claim 8, further comprisingsending a message to a user informing the user of a presence of saidlight-blocking or light-distorting substance or particle.
 24. The methodclaim 9, further comprising sending a message to a user informing theuser of a presence of said light-blocking or light-distorting substanceor particle.